package com.tulele.vtool.service;

import com.tulele.vtool.model.*;
import com.tulele.vtool.model.logEntity.PageDetailLog;
import com.tulele.vtool.model.reqEntity.GetRecommendUserInfoReqBean;

import java.util.List;
import java.util.Map;

public interface ConnectionInfoService {

    ConnectionPermissionInfo selectPermission(String gzhCode, Integer vipStatus);

    Integer selectApplyNumByUserId(Integer userId);

    void sendApply(ConnectionApplyInfo connectionApplyInfo);

    List<ConnectionApplyInfo> selectPassesUserListByUserId(Integer userId, Integer pageNum, Integer pageSize, GetRecommendUserInfoReqBean recommendUserInfoReqBean,String gzhCode,String[] screen);

    List<ConnectionApplyInfo> selectToUserListByUserId(Integer userId, Integer pageNum, Integer pageSize, GetRecommendUserInfoReqBean recommendUserInfoReqBean,String gzhCode,String[] screen);

    Integer selectBeAddedNumByUserId(Integer connectionToUserId);

    void deleteUserByConnectionId(Integer connectionId);

    Integer selectPassesNumByUserId(Integer userId);

    void passesUser(Integer id);

    Integer selectWhetherOrBeAdded(Integer userId);

    void switchState(Integer userId, Integer state);

    void addWhetherOrBeAdded(WxNotifyMsgSetInfo wxNotifyMsgSetInfo);

    List<ConnectionApplyInfo> selectFromUserListByUserId(Integer userId, Integer pageNum, Integer pageSize, GetRecommendUserInfoReqBean recommendUserInfoReqBean, String gzhCode, String[] screen);

    String selectRegionByUserId(Integer userId);

    Integer selectCountToUserListByUserId(Integer userId, String gzhCode);

    Integer selectSendApplyId(Integer userId, Integer connectionToUserId, String gzhCode);

    void updateApply(ConnectionApplyInfo connectionApplyInfo);

    Map<String, List<ConnectionNeedInfo>> selectNeedByGzhCode(String gzhCode);

    void setNeedByUserId(Integer userId, List<Integer> needIds, String gzhCode);

    List<ConnectionNeedInfo> selectNeedByUserId(Integer userId, String gzhCode);

    Map<String,String> selectNeedNameByUserId(Integer userId,String gzhCode);

    Integer selectNeedBeyond(List<Integer> needIds);

    List<Integer> getUserAttentionArticleTypeInfo(Integer userId);

    ConnectionApplyInfo selectToUserIdByNeedId(Integer id);

    void addAccessRecord(PageDetailLog log);

    Integer notFirstTime(Integer userId);

    Integer isAdd(Integer userId, Integer platformUserId);
}
